#ifndef DEBUG_H
#define DEBUG_H
#include <stdio.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
  //成功
  error_success = 0x00,
  //通用
  error_overtime = 0x80,
  error_accessKey = 0x88,
  error_secretKey = 0x89,
  //参数
  error_args = 0x90,       //参数错误
  error_argsEmpty = 0x91,  //参数为空
  error_argsType = 0x92,   //参数类型错误
  //内存
  error_memory = 0xA0,     //内存错误
  error_memAlloc = 0xA1,   //内存分配失败
  error_memOut = 0xA2,     //内存溢出
  error_dataCheck = 0xA3,  //数据校验失败
  //通信
  error_network = 0xB0,     //网络错误
  error_connect = 0xB1,     //无法连接
  error_disconnect = 0xB2,  //连接断开
  //文件
  error_file = 0xC0,      //文件错误
  error_fileOpen = 0xC1,  //打开文件失败
  //其他
  error_other = 0xF0,    //其他错误（省略）
  error_unknown = 0xFF,  //未知错误（默认值）
} ErrorStatus;

#define ERROR(fmt) perror("ERROR: " fmt)
#ifdef DEBUG
#define WARN(...) printf("WARN: " __VA_ARGS__)
#define INFO(...) printf("INFO: " __VA_ARGS__)
#else
#define WARN(...) ((void)0)
#define INFO(...) ((void)0)
#endif

#ifdef __cplusplus
}
#endif
#endif  // DEBUG_H
